// The solution contains two types of messages. Messages with Severity = Informational are used for various notices, UI labels, captions, etc.
// Messages with Severity = Error are used for error reporting strings.
// Common strings
//
//  Values are 32 bit values laid out as follows:
//
//   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
//   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
//  +---+-+-+-----------------------+-------------------------------+
//  |Sev|C|R|     Facility          |               Code            |
//  +---+-+-+-----------------------+-------------------------------+
//
//  where
//
//      Sev - is the severity code
//
//          00 - Success
//          01 - Informational
//          10 - Warning
//          11 - Error
//
//      C - is the Customer code flag
//
//      R - is a reserved bit
//
//      Facility - is the facility code
//
//      Code - is the facility's status code
//
//
// Define the facility codes
//


//
// Define the severity codes
//


//
// MessageId: MSG_L_ALL_APPLICATIONS_NAME
//
// MessageText:
//
// All Applications
//
#define MSG_L_ALL_APPLICATIONS_NAME      0x40000001L

//
// MessageId: MSG_L_UNREGISTERED_APPLICATIONS_NAME
//
// MessageText:
//
// Unregistered Applications
//
#define MSG_L_UNREGISTERED_APPLICATIONS_NAME 0x40000002L

//
// MessageId: MSG_L_ALL_MODES_NAME
//
// MessageText:
//
// All Modes
//
#define MSG_L_ALL_MODES_NAME             0x40000003L

//
// MessageId: MSG_L_LOW_LEVEL_KEYBOARD_NAME
//
// MessageText:
//
// Low Level Keyboard
//
#define MSG_L_LOW_LEVEL_KEYBOARD_NAME    0x40000004L

//
// MessageId: MSG_L_ALL_KEYBOARDS_NAME
//
// MessageText:
//
// All Keyboards
//
#define MSG_L_ALL_KEYBOARDS_NAME         0x40000005L

//
// MessageId: MSG_L_UNREGISTERED_KEYBOARDS_NAME
//
// MessageText:
//
// Unregistered Keyboards
//
#define MSG_L_UNREGISTERED_KEYBOARDS_NAME 0x40000006L

//
// MessageId: MSG_L_LANGUAGE_ENGLISH_NAME
//
// MessageText:
//
// English (EN)
//
#define MSG_L_LANGUAGE_ENGLISH_NAME      0x40000007L

//
// MessageId: MSG_L_LANGUAGE_CZECH_NAME
//
// MessageText:
//
// Czech (CS)
//
#define MSG_L_LANGUAGE_CZECH_NAME        0x40000008L

//
// MessageId: MSG_L_LITEKEYS_VERSION
//
// MessageText:
//
// Version %1
//
#define MSG_L_LITEKEYS_VERSION           0x40000009L

// Common error reporting messages
//
// MessageId: MSG_E_INIT_COM
//
// MessageText:
//
// The system failed to initialize the COM library for the %1.
// Try to restart the %1 or reboot the system.
//
#define MSG_E_INIT_COM                   0xC0000001L

//
// MessageId: MSG_E_OPEN_USERS_GUIDE
//
// MessageText:
//
// Failed to open the LiteKeys User's Guide (the file "%1" might be missing or inaccessible, or the default browser couldn't be opened).
//
#define MSG_E_OPEN_USERS_GUIDE           0xC0000002L

// XML error reporting messages
//
// MessageId: MSG_E_XML_FILE_NOT_FOUND
//
// MessageText:
//
// The settings file "%1" wasn't found (or could not be opened).
//
#define MSG_E_XML_FILE_NOT_FOUND         0xC0000003L

//
// MessageId: MSG_E_XML_SYSTEM
//
// MessageText:
//
// The settings file "%1" couldn't be loaded due to a system error (either there was some I/O error or the system run out of memory).
//
#define MSG_E_XML_SYSTEM                 0xC0000004L

//
// MessageId: MSG_E_XML_PARSING
//
// MessageText:
//
// The settings file "%1" couldn't be loaded due to a XML parsing error. Offset of the last parsed character is: %2!u!.
//
#define MSG_E_XML_PARSING                0xC0000005L

//
// MessageId: MSG_E_XML_REPORT_HEADER
//
// MessageText:
//
// The settings file "%1" contains the following errors:
//
#define MSG_E_XML_REPORT_HEADER          0xC0000006L

//
// MessageId: MSG_E_XML_NODE_MISSING
//
// MessageText:
//
// The mandatory element <%1> wasn't found.
//
#define MSG_E_XML_NODE_MISSING           0xC0000007L

//
// MessageId: MSG_E_XML_NODE_MISSING_WITH_OFFSET
//
// MessageText:
//
// The mandatory element <%1> wasn't found.
// Last marked character offset: %2!u!.
//
#define MSG_E_XML_NODE_MISSING_WITH_OFFSET 0xC0000008L

//
// MessageId: MSG_E_XML_VERSION_MISMATCH
//
// MessageText:
//
// The version of the settings file differs from the version of the currently running LiteKeys (version of the file is: "%1", running version is: "%2").
// This might have caused the settings loading errors.
//
#define MSG_E_XML_VERSION_MISMATCH       0xC0000009L

//
// MessageId: MSG_E_XML_INVALID_VALUE
//
// MessageText:
//
// The element <%1> wasn't found or it had an unacceptable value.
// The value specified in the file was: "%2".
// Last marked character offset: %3!u!.
//
#define MSG_E_XML_INVALID_VALUE          0xC000000AL

//
// MessageId: MSG_E_XML_INVALID_IDENTIFIER
//
// MessageText:
//
// The element <%1> had the identification attribute "%2" with an unacceptable value.
// The indentifier value specified in the file was: "%3".
// Last marked character offset: %4!u!.
//
#define MSG_E_XML_INVALID_IDENTIFIER     0xC000000BL

//
// MessageId: MSG_E_XML_DUPLICATE_VALUE
//
// MessageText:
//
// The element <%1> couldn't properly create its record, because a record identified with the specified value had already existed.
// The identifying value specified in the file was: <%2> "%3".
// Last marked character offset: %4!u!.
//
#define MSG_E_XML_DUPLICATE_VALUE        0xC000000CL

//
// MessageId: MSG_E_XML_KEYBOARDS_LIMIT
//
// MessageText:
//
// The number of registered Keyboards has already reached the limit and therefore no more Keyboards can be loaded.
// Last marked character offset: %1!u!.
//
#define MSG_E_XML_KEYBOARDS_LIMIT        0xC000000DL

//
// MessageId: MSG_E_XML_DUPLICATE_KEY_PROCESSING_VALUE
//
// MessageText:
//
// The element <%1> couldn't properly create its record, because a record identified with the specified value had already existed, or the Key had already assigned different type of Blocking.
// The identifying values specified in the file were: <%2> "%3", <%4> "%5", <%6> "%7".
// Last marked character offset: %8!u!.
//
#define MSG_E_XML_DUPLICATE_KEY_PROCESSING_VALUE 0xC000000EL

//
// MessageId: MSG_E_XML_CONFLICTING_HOTKEY_SETTINGS
//
// MessageText:
//
// The element <%1> couldn't properly create its record, because the record conflicted with another setting (either the Key had been set to be completely blocked, or it had been registered for incompatible Low Level / standard Keyboard).
// The record identifying values in the file were: <%2 "%3">, <%4 "%5">, <%6 "%7">, <%8 "%9">.
// Last marked character offset: %10!u!.
//
#define MSG_E_XML_CONFLICTING_HOTKEY_SETTINGS 0xC000000FL

//
// MessageId: MSG_E_XML_DUPLICATE_HOTKEY_RECORD
//
// MessageText:
//
// The element <%1> couldn't properly create its record, because a conflicting record for the given setup had been already created (and its <%2> didn't match).
// The record identifying values in the file were: <%3 "%4">, <%5 "%6">, <%7 "%8">, <%9 "%10">.
// Last marked character offset: %11!u!.
//
#define MSG_E_XML_DUPLICATE_HOTKEY_RECORD 0xC0000010L

//
// MessageId: MSG_E_XML_DUPLICATE_ACTION_SEQUENCE
//
// MessageText:
//
// The element <%1> couldn't properly create its record, because a record conflicting with the given setup had been already created (either <%8> had had a record for the same Modifiers, or it had been ignoring Modifiers).
// The record identifying values in the file were: <%2 "%3">, <%4 "%5">, <%6 "%7">, <%8 "%9">, <%10 "%11">.
// Last marked character offset: %12!u!.
//
#define MSG_E_XML_DUPLICATE_ACTION_SEQUENCE 0xC0000011L

// LiteKeys Manager strings
//
// MessageId: MSG_L_MANAGER_TITLE
//
// MessageText:
//
// LiteKeys
//
#define MSG_L_MANAGER_TITLE              0x400003E8L

//
// MessageId: MSG_L_NOTIFY_PROCESSING
//
// MessageText:
//
// LiteKeys: PROCESSING
//
#define MSG_L_NOTIFY_PROCESSING          0x400003E9L

//
// MessageId: MSG_L_NOTIFY_STOPPED
//
// MessageText:
//
// LiteKeys: STOPPED
//
#define MSG_L_NOTIFY_STOPPED             0x400003EAL

//
// MessageId: MSG_L_NOTIFY_WARNING
//
// MessageText:
//
// LiteKeys: WARNING
//
#define MSG_L_NOTIFY_WARNING             0x400003EBL

//
// MessageId: MSG_L_NOTIFY_ERROR
//
// MessageText:
//
// LiteKeys: ERROR
//
#define MSG_L_NOTIFY_ERROR               0x400003ECL

//
// MessageId: MSG_L_ERROR_BOX_TITLE
//
// MessageText:
//
// LiteKeys Error!
//
#define MSG_L_ERROR_BOX_TITLE            0x400003EDL

//
// MessageId: MSG_L_WARNING_BOX_TITLE
//
// MessageText:
//
// LiteKeys Warning!
//
#define MSG_L_WARNING_BOX_TITLE          0x400003EEL

// Error reporting messages
//
// MessageId: MSG_E_INIT_ALREADY_RUNNING
//
// MessageText:
//
// LiteKeys is probably already running.
// If not, try to check the Task Manager for any residual LiteKeys processes, and terminate them. Then try to run LiteKeys again.
//
#define MSG_E_INIT_ALREADY_RUNNING       0xC00003E8L

//
// MessageId: MSG_E_INIT_INSTANCE
//
// MessageText:
//
// The system failed to initialize the LiteKeys application.
// Check the Task Manager, and terminate any residual LiteKeys processes. Then try to run the LiteKeys again or restart the system.
//
#define MSG_E_INIT_INSTANCE              0xC00003E9L

//
// MessageId: MSG_E_COM_OPEN_DIALOG
//
// MessageText:
//
// The attempt to create the Open dialog window, or retrieving its selection failed due to an unspecified system error.
// Try to load the settings again or restart the LiteKeys.
//
#define MSG_E_COM_OPEN_DIALOG            0xC00003EAL

//
// MessageId: MSG_E_OPEN_SETTINGS
//
// MessageText:
//
// LiteKeys failed to open the LiteKeys Settings (the file "%1" might be missing or inaccessible).
//
#define MSG_E_OPEN_SETTINGS              0xC00003EBL

//
// MessageId: MSG_E_OPEN_LOG
//
// MessageText:
//
// The LiteKeys failed to open the file for the log output.
// Try to reload the settings or restart the LiteKeys.
//
#define MSG_E_OPEN_LOG                   0xC00003ECL

//
// MessageId: MSG_E_START_RAWINPUT
//
// MessageText:
//
// Failed to register for the Raw Input.
// Try to reload settings, and then start processing again, or restart the LiteKeys.
//
#define MSG_E_START_RAWINPUT             0xC00003EDL

//
// MessageId: MSG_E_START_HOOK
//
// MessageText:
//
// Failed to install the Keyboard Hook.
// Try to reload settings, and then start processing again, or restart the LiteKeys.
//
#define MSG_E_START_HOOK                 0xC00003EEL

//
// MessageId: MSG_E_START_LOW_LEVEL_HOOK
//
// MessageText:
//
// Failed to install the Low Level Keyboard Hook.
// Try to reload settings, and then start processing again, or restart the LiteKeys.
//
#define MSG_E_START_LOW_LEVEL_HOOK       0xC00003EFL

//
// MessageId: MSG_E_STOP_HOOK
//
// MessageText:
//
// Failed to uninstall the Keyboard Hook properly.
// Try to restart the LiteKeys.
//
#define MSG_E_STOP_HOOK                  0xC00003F0L

//
// MessageId: MSG_E_STOP_LOW_LEVEL_HOOK
//
// MessageText:
//
// Failed to uninstall the Low Level Keyboard Hook properly.
// Try to restart the LiteKeys.
//
#define MSG_E_STOP_LOW_LEVEL_HOOK        0xC00003F1L

//
// MessageId: MSG_E_STOP_RAWINPUT
//
// MessageText:
//
// Failed to cancel the Raw Input registration.
// Try to reload settings (which will also attempt to stop the processing), or restart the LiteKeys.
//
#define MSG_E_STOP_RAWINPUT              0xC00003F2L

//
// MessageId: MSG_E_RAWINPUT_PREPARE
//
// MessageText:
//
// Failed to process Raw Input event due to an unspecified system error.
//
#define MSG_E_RAWINPUT_PREPARE           0xC00003F3L

//
// MessageId: MSG_E_RAWINPUT_IDENTIFY_KEYBOARD
//
// MessageText:
//
// Failed to read the keyboard identification data of the Raw Input event (Key: %1, Key Code: 0x%2!02X!, Key Press: %3!u!).
//
#define MSG_E_RAWINPUT_IDENTIFY_KEYBOARD 0xC00003F4L

//
// MessageId: MSG_E_IDENTIFY_APPLICATION
//
// MessageText:
//
// Failed to identify the active application.
// If an executable file has very long path, it can cause this error.
//
#define MSG_E_IDENTIFY_APPLICATION       0xC00003F5L

//
// MessageId: MSG_E_HOOK_TIMED_OUT
//
// MessageText:
//
// The LiteKeys hasn't received matching Raw Input event for the Keyboard Hook event within the time limit.
// This Keyboard Hook event is being blocked without any further processing (Key: %1, Key Code: 0x%2!02X!, Key Press: %3!u!, Key Was Up: %4!u!).
//
#define MSG_E_HOOK_TIMED_OUT             0xC00003F6L

//
// MessageId: MSG_E_CLIPBOARD
//
// MessageText:
//
// Problem occurred while manipulating the Clipboard. The requested operation was canceled.
//
#define MSG_E_CLIPBOARD                  0xC00003F7L

//
// MessageId: MSG_E_EXECUTE
//
// MessageText:
//
// LiteKeys failed to execute the requested file "%1" with parameters "%2" as a hotkey's Action.
//
#define MSG_E_EXECUTE                    0xC00003F8L

// XML error reporting messages
//
// MessageId: MSG_E_XML_REPORT_FOOTER
//
// MessageText:
//
// LiteKeys can't start processing with the settings file with errors. You can use the LiteKeys Settings to generate a valid settings file, or you can fix the errors manually.
//
#define MSG_E_XML_REPORT_FOOTER          0xC00003F9L

